<?php
declare (strict_types = 1);

namespace app\index\controller;

use think\facade\Request;
use think\facade\View;


class Index  //index是class类
{
    /**
     * @return \think\response\View
     */
    public function index()
    {
        //pathinfo
        //访问模式 , 域名/入口文件/应用/控制器/方法
        //url=http://tp26.com/index.php/index/index/index
        //调用数据库 CURD
        //数据发送到视图
        //控制器定义
        //目录使用小写+下划线（对应应用目录）
        //控制器文件采用驼峰发命名（首字母大写）
        //控制器 以.php 为后缀
        //命名空间的路径何类库文件所在路径一致；
        //控制器类名和文件名保持一致，同意采用驼峰法命名（首字母大写）；
        //方法的命名方法使用驼峰（首字母小写）

        //调试模式  将.example.env 文件改为.env文件；

        //下载模板引擎：
        //视图功能来内进行末班引擎
        //在手册里面的视图 复制 攒到php运行；
        //   控制器渲染输出
        //
//        return '您好！这是一个[index]示例应用，index控制器，index方法';
        //输出JSON
        $data = [
            'id'=>1,
            'name'=>'zx'
        ];
//        return json($data);
        //【视图定义】
        //view目录下建立一个对应控制器的文件夹
        //建立一个对应方法的htnl页，  方法名大写转小写+下划线  以html结尾

        //【渲染输出】
        //渲染默认模板输出
        //默认渲染对应的HTML页
        //view 这是一个渲染视图的助手函数
        //   参数
        //参数1：模板表达式  [应用@] [控制器/] 方法
//        return view('index@index/demo');
        //参数2：变量参数
//        return view('index@index/demo',$data);
//        return View::fetch('index@index/demo',$data); //这个和助手函数差不多 里面的参数都是一样的
        //【url生成】
        //参数
        //没有参数是 默认生成控制器方法自己本身的地址
        //1地址表达式  [应用/] [控制器/] 方法
        //2地址栏参数   关联数组
        //3伪静态后缀      默认true  html结尾
        //4域名    默认false
//        echo\think\facade\Route::buildUrl('admin/index/demo',['id'=>1,'name'=>'wang'])
//        ->suffix('.php')
//        ->domain('www.ha.com');

        //【url助手函数】
//        echo url('admin/index/demo',['id'=>1,'name'=>'wang'],'.php','www.ha.com');


        //day3==========================================================
        //[模板赋值]
        //标量 字符串 整型 浮点 布尔值 使用is_scalar函数判断 var_dump(is_scalar($str));
        //$str= 'tp26';
        //View::assign('str',$str);

        //一维数组
        //关联数组
//        $data = [
//            'id'=>1,
//            'name'=>'wang'
//        ];
//        View::assign('arr1',$data);
//        echo"<br>";
//        //索引数组
//        $data1 = [
//            2,
//            'hahah'
//        ];
//        View::assign('arr2',$data1);
//        //多位数组
//        $data2 = [
//            [
//                'id'=>3,
//                'name'=>'刘德华',
//            ],
//            [
//            'id'=>4,
//            'name'=>'周润发',
//            ]
//        ];
//        View::assign('arr3',$data2);
//        //对象
//        $obj = new \stdClass();
//        $obj->id =5;
//        $obj->name = '谢霆锋';
//        View::assign('obj',$obj);
//        //批量  是直接赋值一个数组
//        $data3 = [
//            'id'=>6,
//            'name'=>'马思纯'
//        ];
//        View::assign($data3);
//        //循环标签
//        $data4 = [
//          [
//              'id'=>1,
//              'name'=>'唐三'
//          ],
//            [
//                'id'=>2,
//                'name'=>'唐三'
//            ],
//            [
//                'id'=>3,
//                'name'=>'唐三'
//            ],
//            [
//                'id'=>4,
//                'name'=>'唐三'
//            ],
//        ];
//        View::assign('arr',$data4);
//        //比较标签
//        $str = time();//放汉字 字母 数字都好使。
//        View::assign('str',$str);
//
//        $str1 ="<br>" ;//放汉字 字母 数字都好使。
//        View::assign('str1',$str1);
////      三元运算符
//        $str2 ="false" ;//放汉字 字母 数字都好使。
//        View::assign('str2',$str2);



        //request:
        $param = Request::param();
        echo"<pre>";
        print_r($param);
        echo"</pre>";

        echo Request::host(true);
        echo"<br>";
        echo Request::action(true);//这个true是转小写
        echo"<br>";
        echo Request::controller();
        echo"<br>";
//        echo app('http');
//        return view();
        echo Request::get('name','default','trim');
        echo"<br>";
        echo Request::get();
    }

    public function demo()
    {
        //url=http://tp26.com/index.php/index/index/demo
        //        return'index/index/demo';


    }
}






